mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
gfs2: Always mark inode dirty in fallocate
When allocating space with fallocate, always update the file timestamps and mark the inode dirty, no matter if the FALLOC_FL_KEEP_SIZE flag is set or not. The inode needs to be marked dirty so that a subsequent fsync will pick it up and any new allocations will make it to disk. Filesystems like xfs and ext4 always update the timestamps, so make gfs2 behave the same way. Fixes xfstest generic/483. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
d40312598d
commit
0a6a4abc84
@ -1065,11 +1065,10 @@ static long __gfs2_fallocate(struct file *file, int mode, loff_t offset, loff_t
|
||||
gfs2_quota_unlock(ip);
|
||||
}
|
||||
|
||||
if (!(mode & FALLOC_FL_KEEP_SIZE) && (pos + count) > inode->i_size) {
|
||||
if (!(mode & FALLOC_FL_KEEP_SIZE) && (pos + count) > inode->i_size)
|
||||
i_size_write(inode, pos + count);
|
||||
file_update_time(file);
|
||||
mark_inode_dirty(inode);
|
||||
}
|
||||
file_update_time(file);
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
if ((file->f_flags & O_DSYNC) || IS_SYNC(file->f_mapping->host))
|
||||
return vfs_fsync_range(file, pos, pos + count - 1,
|
||||
|
Loading…
Reference in New Issue
Block a user