Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 009dd694 authored by Maxim Patlasov's avatar Maxim Patlasov Committed by Miklos Szeredi
Browse files

fuse: update mtime on truncate(2)



Handling truncate(2), VFS doesn't set ATTR_MTIME bit in iattr structure;
only ATTR_SIZE bit is set. In-kernel fuse must handle the case by setting
mtime fields of struct fuse_setattr_in to "now" and set FATTR_MTIME bit
even though ATTR_MTIME was not set.

Signed-off-by: default avatarMaxim Patlasov <MPatlasov@parallels.com>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
parent d31433c8
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1678,6 +1678,8 @@ int fuse_do_setattr(struct inode *inode, struct iattr *attr,
	if (is_truncate) {
	if (is_truncate) {
		fuse_set_nowrite(inode);
		fuse_set_nowrite(inode);
		set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
		set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
		if (trust_local_mtime && attr->ia_size != inode->i_size)
			attr->ia_valid |= ATTR_MTIME;
	}
	}


	memset(&inarg, 0, sizeof(inarg));
	memset(&inarg, 0, sizeof(inarg));