--- linux-2.6.23-mm1/fs/reiser4/plugin/file/cryptcompress.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) --- linux-2.6.23-mm1/fs/reiser4/plugin/file/cryptcompress.c.orig +++ linux-2.6.23-mm1/fs/reiser4/plugin/file/cryptcompress.c @@ -2721,7 +2721,8 @@ if (result) goto out; if (cont->state == PSCHED_ASSIGNED_NEW) - goto out_no_release; + /* done_lh was called in write_pschedule_hook */ + goto out_no_longterm_lock; result = prepare_logical_cluster(inode, pos, count, &clust, LC_APPOV); @@ -2793,9 +2794,9 @@ } while (count); out: done_lh(&hint->lh); - mutex_unlock(&info->checkin_mutex); save_file_hint(file, hint); - out_no_release: + out_no_longterm_lock: + mutex_unlock(&info->checkin_mutex); kfree(hint); put_cluster_handle(&clust); assert("edward-195",