commit: 2b66902c411859f19d0ee76b38efcd162d6b3f8f Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> AuthorDate: Fri Dec 13 23:41:16 2019 +0000 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> CommitDate: Fri Dec 13 23:42:23 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b66902c
sys-fs/zfs-kmod: revbump 0.8.2, fix O_TMPFILE umask ignore Bug: https://bugs.gentoo.org/686142 Package-Manager: Portage-2.3.79, Repoman-2.3.17 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org> sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch | 34 ++++++++++++++++++++++ ...od-0.8.2-r1.ebuild => zfs-kmod-0.8.2-r2.ebuild} | 2 ++ 2 files changed, 36 insertions(+) diff --git a/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch b/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch new file mode 100644 index 00000000000..9252b6e7815 --- /dev/null +++ b/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch @@ -0,0 +1,34 @@ +From ddb4e69db5eb0ed741dc4e32714af3e0f054086c Mon Sep 17 00:00:00 2001 +From: Tomohiro Kusumi <kusumi.tomoh...@gmail.com> +Date: Sat, 14 Dec 2019 08:02:23 +0900 +Subject: [PATCH] Don't fail to apply umask for O_TMPFILE files + +Apply umask to `mode` which will eventually be applied to inode. +This is needed since VFS doesn't apply umask for O_TMPFILE files. + +(Note that zpl_init_acl() applies `ip->i_mode &= ~current_umask();` +only when POSIX ACL is used.) + +Reviewed-by: Brian Behlendorf <behlendo...@llnl.gov> +Reviewed-by: Tony Hutter <hutt...@llnl.gov> +Signed-off-by: Tomohiro Kusumi <kusumi.tomoh...@gmail.com> +Closes #8997 +Closes #8998 + +diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c +index 264c5d2b1cf..e1c6ce7b705 100644 +--- a/module/zfs/zpl_inode.c ++++ b/module/zfs/zpl_inode.c +@@ -218,6 +218,12 @@ zpl_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) + + crhold(cr); + vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP); ++ /* ++ * The VFS does not apply the umask, therefore it is applied here ++ * when POSIX ACLs are not enabled. ++ */ ++ if (!IS_POSIXACL(dir)) ++ mode &= ~current_umask(); + zpl_vap_init(vap, dir, mode, cr); + + cookie = spl_fstrans_mark(); diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild similarity index 98% rename from sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild rename to sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild index 0df21c6da8c..961ee269f06 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild @@ -38,6 +38,8 @@ RESTRICT="debug? ( strip ) test" DOCS=( AUTHORS COPYRIGHT META README.md ) +PATCHES=( "${FILESDIR}/${PV}-umask_O_TMPFILE.patch" ) + pkg_setup() { linux-info_pkg_setup