Skip to content

Commit 5b8ca5a

Browse files
mihalicynMiklos Szeredi
authored andcommitted
fuse: handle idmappings properly in ->write_iter()
This is needed to properly clear suid/sgid. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
1 parent 4be75ff commit 5b8ca5a

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

fs/fuse/file.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,7 @@ static void fuse_dio_unlock(struct kiocb *iocb, bool exclusive)
13981398
static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from)
13991399
{
14001400
struct file *file = iocb->ki_filp;
1401+
struct mnt_idmap *idmap = file_mnt_idmap(file);
14011402
struct address_space *mapping = file->f_mapping;
14021403
ssize_t written = 0;
14031404
struct inode *inode = mapping->host;
@@ -1412,7 +1413,7 @@ static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from)
14121413
return err;
14131414

14141415
if (fc->handle_killpriv_v2 &&
1415-
setattr_should_drop_suidgid(&nop_mnt_idmap,
1416+
setattr_should_drop_suidgid(idmap,
14161417
file_inode(file))) {
14171418
goto writethrough;
14181419
}

0 commit comments

Comments
 (0)