exynos-linux-stable/fs/orangefs
Jan Kara e148702302 orangefs: Don't clear SGID when inheriting ACLs
commit b5accbb0dfae36d8d36cd882096943c98d5ede15 upstream.

When new directory 'DIR1' is created in a directory 'DIR0' with SGID bit
set, DIR1 is expected to have SGID bit set (and owning group equal to
the owning group of 'DIR0'). However when 'DIR0' also has some default
ACLs that 'DIR1' inherits, setting these ACLs will result in SGID bit on
'DIR1' to get cleared if user is not member of the owning group.

Fix the problem by creating __orangefs_set_acl() function that does not
call posix_acl_update_mode() and use it when inheriting ACLs. That
prevents SGID bit clearing and the mode has been properly set by
posix_acl_create() anyway.

Fixes: 073931017b
CC: stable@vger.kernel.org
CC: Mike Marshall <hubcap@omnibond.com>
CC: pvfs2-developers@beowulf-underground.org
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-09-27 14:39:18 +02:00
..
acl.c orangefs: Don't clear SGID when inheriting ACLs 2017-09-27 14:39:18 +02:00
dcache.c orangefs: don't use d_time 2016-10-24 14:50:07 -04:00
devorangefs-req.c orangefs: free superblock when mount fails 2017-04-21 09:31:19 +02:00
dir.c orangefs: use %pd/%pD 2016-08-07 23:38:47 -04:00
downcall.h orangefs: add features op 2016-08-12 15:12:54 -04:00
file.c orangefs: user file_inode() where it is due 2016-10-24 14:29:39 -04:00
inode.c orangefs: do not check possibly stale size on truncate 2017-05-20 14:28:39 +02:00
Kconfig Orangefs: kernel client part 7 2015-10-03 11:40:00 -04:00
Makefile Orangefs: change pvfs2 filenames to orangefs 2015-12-04 12:56:14 -05:00
namei.c orangefs: do not set getattr_time on orangefs_lookup 2017-05-20 14:28:39 +02:00
orangefs-bufmap.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
orangefs-bufmap.h orangefs-bufmap.h: trim unused junk 2016-03-25 22:30:54 -04:00
orangefs-cache.c orangefs: add features op 2016-08-12 15:12:54 -04:00
orangefs-debug.h Orangef: remove overlooked old-style userspace debug parts 2015-12-11 11:00:12 -05:00
orangefs-debugfs.c orangefs: Dan Carpenter influenced cleanups... 2017-04-18 07:11:46 +02:00
orangefs-debugfs.h orangefs: clean up debugfs globals 2016-08-15 11:38:36 -04:00
orangefs-dev-proto.h orangefs: fix buffer size mis-match between kernel space and user space. 2017-04-18 07:11:47 +02:00
orangefs-kernel.h orangefs: free superblock when mount fails 2017-04-21 09:31:19 +02:00
orangefs-mod.c orangefs: clean up debugfs 2016-11-07 10:41:55 -05:00
orangefs-sysfs.c Merge branch 'misc' into for-next 2016-09-28 14:50:46 -04:00
orangefs-sysfs.h Orangefs: change pvfs2 filenames to orangefs 2015-12-04 12:56:14 -05:00
orangefs-utils.c fs: add i_blocksize() 2017-06-14 15:06:00 +02:00
protocol.h orangefs: clean up debugfs globals 2016-08-15 11:38:36 -04:00
super.c orangefs: free superblock when mount fails 2017-04-21 09:31:19 +02:00
symlink.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
upcall.h orangefs: add features op 2016-08-12 15:12:54 -04:00
waitqueue.c orangefs: rename most remaining global variables 2016-08-16 11:41:24 -04:00
xattr.c orangefs: clean up oversize xattr validation 2017-05-20 14:28:39 +02:00