f2fs: return i_size if the hole is outside of i_size
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 28 Apr 2014 08:02:48 +0000 (17:02 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 7 May 2014 01:21:57 +0000 (10:21 +0900)
When SEEK_HOLE is requeted, it should return i_size if the hole position is
found outside of i_size.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/file.c

index d99d17325046fef8a9426a293d9adfecd8568e88..31128571e2842d11ab405a680f441930f11b4bd4 100644 (file)
@@ -255,9 +255,9 @@ static loff_t f2fs_seek_block(struct file *file, loff_t offset, int whence)
 
        if (whence == SEEK_DATA)
                goto fail;
-       else
-               data_ofs = isize;
 found:
+       if (whence == SEEK_HOLE && data_ofs > isize)
+               data_ofs = isize;
        mutex_unlock(&inode->i_mutex);
        return vfs_setpos(file, data_ofs, maxbytes);
 fail: