瀏覽代碼

[PATCH] Return error in case flock_lock_file failure

If flock_lock_file() failed to allocate flock with locks_alloc_lock()
then "error = 0" is returned. Need to return some non-zero.

Signed-off-by: Pavel Emelianov <xemul@openvz.org>
Signed-off-by: Kirill Korotaev <dev@openvz.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Kirill Korotaev 19 年之前
父節點
當前提交
9cedc194a7
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      fs/locks.c

+ 2 - 0
fs/locks.c

@@ -755,6 +755,7 @@ static int flock_lock_file(struct file *filp, struct file_lock *request)
 	if (request->fl_type == F_UNLCK)
 	if (request->fl_type == F_UNLCK)
 		goto out;
 		goto out;
 
 
+	error = -ENOMEM;
 	new_fl = locks_alloc_lock();
 	new_fl = locks_alloc_lock();
 	if (new_fl == NULL)
 	if (new_fl == NULL)
 		goto out;
 		goto out;
@@ -781,6 +782,7 @@ static int flock_lock_file(struct file *filp, struct file_lock *request)
 	locks_copy_lock(new_fl, request);
 	locks_copy_lock(new_fl, request);
 	locks_insert_lock(&inode->i_flock, new_fl);
 	locks_insert_lock(&inode->i_flock, new_fl);
 	new_fl = NULL;
 	new_fl = NULL;
+	error = 0;
 
 
 out:
 out:
 	unlock_kernel();
 	unlock_kernel();