$laurel$ goes on till $\text{lock_release(mutex);} $, $laurel$ has $\text{file2}$ and $\textbf{file1}$ is free to be acquired.
$hardy$ runs $\text{lock_acquire(file1);}$, $hardy$ has $\textbf{file1}$
$laurel$ runs $\text{lock_acquire(file1);}$ which is acquired by $hardy$, and $hardy$ runs $\text{lock_acquire(file2);}$ which is acquired by $laurel$. So, this is a deadlock.