X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=mm%2Ffilemap.c;h=a8c69c8c0a90a1e50cfdc822ce2cbc3854e0c8e8;hb=40edd7fdfc8a2c838c313b982f318cd69e638750;hp=7c00f105845ebb2601dd6083eb32046f91b06f32;hpb=b4af7f773ef79c479cc25ee26063821220150a8a;p=deliverable%2Flinux.git diff --git a/mm/filemap.c b/mm/filemap.c index 7c00f105845e..a8c69c8c0a90 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1840,15 +1840,16 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) ssize_t retval = 0; loff_t *ppos = &iocb->ki_pos; loff_t pos = *ppos; + size_t count = iov_iter_count(iter); + + if (!count) + goto out; /* skip atime */ if (iocb->ki_flags & IOCB_DIRECT) { struct address_space *mapping = file->f_mapping; struct inode *inode = mapping->host; - size_t count = iov_iter_count(iter); loff_t size; - if (!count) - goto out; /* skip atime */ size = i_size_read(inode); retval = filemap_write_and_wait_range(mapping, pos, pos + count - 1);