reiser4: fix handling ENOSPC cryptcompress
PATCH 1/1 reiser4: fix handling ENOSPC cryptcompress
Andrew, these bugs were caught when testing
reiser4 on a small partition. Please, apply.
Thanks,
Edward.
Problem:
Processes fall into infinite loop
when running in no-space-left-on-device situation.
Fixup:
Fixed leak of checkin_mutex in do_write_cryptcompress();
--- linux-2.6.25-mm1/fs/reiser4/plugin/file/cryptcompress.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
fs/reiser4/plugin/file/cryptcompress.c renamed from fs/reiser4/plugin/file/cryptcompress.c.orig +4 -3
@@ -2707,7 +2707,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 );
@@ -2779,9 +2780,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",