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

Commit 8d56addd authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

fuse: fix truncate after open



Commit e1181ee6 "vfs: pass struct file to do_truncate on O_TRUNC
opens" broke the behavior of open(O_TRUNC|O_RDONLY) in fuse.  Fuse
assumed that when called from open, a truncate() will be done, not an
ftruncate().

Fix by restoring the old behavior, based on the ATTR_OPEN flag.

Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
parent 5a18ec17
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1283,8 +1283,11 @@ static int fuse_do_setattr(struct dentry *entry, struct iattr *attr,
	if (err)
		return err;

	if ((attr->ia_valid & ATTR_OPEN) && fc->atomic_o_trunc)
	if (attr->ia_valid & ATTR_OPEN) {
		if (fc->atomic_o_trunc)
			return 0;
		file = NULL;
	}

	if (attr->ia_valid & ATTR_SIZE)
		is_truncate = true;