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
 

Reply via email to