X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=mm%2Freadahead.c;h=7963f239123689864a5bf1d9e174d595c6cf1592;hb=b18d26f6ad8f00ea5f7c6a12ea52627ca3c3c6e2;hp=ea8f8fa21649d7069543e19e0e48ae38d63c175e;hpb=a4d3621e0d3ecf191961dc9214e4a378a7186780;p=cascardo%2Flinux.git diff --git a/mm/readahead.c b/mm/readahead.c index ea8f8fa21649..7963f2391236 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -579,19 +579,19 @@ do_readahead(struct address_space *mapping, struct file *filp, SYSCALL_DEFINE(readahead)(int fd, loff_t offset, size_t count) { ssize_t ret; - struct file *file; + struct fd f; ret = -EBADF; - file = fget(fd); - if (file) { - if (file->f_mode & FMODE_READ) { - struct address_space *mapping = file->f_mapping; + f = fdget(fd); + if (f.file) { + if (f.file->f_mode & FMODE_READ) { + struct address_space *mapping = f.file->f_mapping; pgoff_t start = offset >> PAGE_CACHE_SHIFT; pgoff_t end = (offset + count - 1) >> PAGE_CACHE_SHIFT; unsigned long len = end - start + 1; - ret = do_readahead(mapping, file, start, len); + ret = do_readahead(mapping, f.file, start, len); } - fput(file); + fdput(f); } return ret; }