Explorar o código

switch fadvise(2) to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro %!s(int64=13) %!d(string=hai) anos
pai
achega
611443783a
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      mm/fadvise.c

+ 3 - 2
mm/fadvise.c

@@ -26,7 +26,8 @@
  */
 SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice)
 {
-	struct file *file = fget(fd);
+	int fput_needed;
+	struct file *file = fget_light(fd, &fput_needed);
 	struct address_space *mapping;
 	struct backing_dev_info *bdi;
 	loff_t endbyte;			/* inclusive */
@@ -128,7 +129,7 @@ SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice)
 		ret = -EINVAL;
 	}
 out:
-	fput(file);
+	fput_light(file, fput_needed);
 	return ret;
 }
 #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS