Browse Source

switch readahead(2) to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 13 years ago
parent
commit
132ea2479f
1 changed files with 3 additions and 2 deletions
  1. 3 2
      mm/readahead.c

+ 3 - 2
mm/readahead.c

@@ -580,9 +580,10 @@ SYSCALL_DEFINE(readahead)(int fd, loff_t offset, size_t count)
 {
 	ssize_t ret;
 	struct file *file;
+	int fput_needed;
 
 	ret = -EBADF;
-	file = fget(fd);
+	file = fget_light(fd, &fput_needed);
 	if (file) {
 		if (file->f_mode & FMODE_READ) {
 			struct address_space *mapping = file->f_mapping;
@@ -591,7 +592,7 @@ SYSCALL_DEFINE(readahead)(int fd, loff_t offset, size_t count)
 			unsigned long len = end - start + 1;
 			ret = do_readahead(mapping, file, start, len);
 		}
-		fput(file);
+		fput_light(file, fput_needed);
 	}
 	return ret;
 }