Carlos Maiolino
42c49d7f24
xfs: fix sgid inheritance for subdirectories inheriting default acls [V3]
...
XFS removes sgid bits of subdirectories under a directory containing a default
acl.
When a default acl is set, it implies xfs to call xfs_setattr_nonsize() in its
code path. Such function is shared among mkdir and chmod system calls, and
does some checks unneeded by mkdir (calling inode_change_ok()). Such checks
remove sgid bit from the inode after it has been granted.
With this patch, we extend the meaning of XFS_ATTR_NOACL flag to avoid these
checks when acls are being inherited (thanks hch).
Also, xfs_setattr_mode, doesn't need to re-check for group id and capabilities
permissions, this only implies in another try to remove sgid bit from the
directories. Such check is already done either on inode_change_ok() or
xfs_setattr_nonsize().
Changelog:
V2: Extends the meaning of XFS_ATTR_NOACL instead of wrap the tests into another
function
V3: Remove S_ISDIR check in xfs_setattr_nonsize() from the patch
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
2013-07-10 10:21:51 -05:00
..
2013-05-07 18:45:36 -05:00
2012-05-29 23:28:32 -04:00
2012-05-29 23:28:32 -04:00
2013-06-27 13:34:12 -05:00
2013-05-07 18:45:36 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2012-11-19 20:11:24 -06:00
2013-06-05 11:26:53 -05:00
2013-06-05 11:26:53 -05:00
2013-04-21 14:57:43 -05:00
2013-05-07 18:45:36 -05:00
2013-04-21 14:53:46 -05:00
2013-05-20 13:09:11 -05:00
2012-11-15 21:35:12 -06:00
2013-05-20 14:14:25 -05:00
2012-07-22 11:00:55 -05:00
2013-07-09 16:40:22 -05:00
2013-06-13 10:30:03 -05:00
2013-05-23 18:04:06 -05:00
2013-05-23 18:04:06 -05:00
2010-01-20 10:47:48 +11:00
2013-04-27 12:49:32 -05:00
2013-04-27 12:49:32 -05:00
2009-01-09 15:53:54 +11:00
2013-05-07 18:45:36 -05:00
2013-06-20 13:26:09 -05:00
2013-07-09 16:40:22 -05:00
2013-07-09 16:40:22 -05:00
2013-06-13 14:18:02 -05:00
2013-05-07 18:45:36 -05:00
2013-06-27 14:27:18 -05:00
2013-06-27 13:33:11 -05:00
2013-05-23 18:04:06 -05:00
2013-01-16 16:07:11 -06:00
2012-11-19 20:11:24 -06:00
2013-05-20 16:32:30 -05:00
2013-04-27 13:01:06 -05:00
2013-06-20 13:26:09 -05:00
2010-01-15 15:31:23 -06:00
2013-07-09 13:21:15 -05:00
2013-07-09 16:40:22 -05:00
2013-04-27 13:01:58 -05:00
2013-06-13 10:30:03 -05:00
2013-06-27 13:27:24 -05:00
2013-05-30 14:32:47 -05:00
2013-04-27 13:01:06 -05:00
2013-04-27 12:24:32 -05:00
2012-07-01 14:50:07 -05:00
2011-07-13 13:43:48 +02:00
2012-08-23 14:48:44 -05:00
2011-08-12 16:21:35 -05:00
2012-05-14 16:21:00 -05:00
2011-08-12 16:21:35 -05:00
2013-06-28 13:13:59 -05:00
2013-06-28 13:12:42 -05:00
2013-04-21 14:48:41 -05:00
2011-03-07 10:09:35 +11:00
2013-02-26 02:46:10 -05:00
2011-08-12 16:21:35 -05:00
2012-05-14 16:21:04 -05:00
2012-05-14 16:21:04 -05:00
2013-05-20 14:29:34 -05:00
2013-04-05 13:25:35 -05:00
2013-05-07 20:16:25 -07:00
2011-10-11 21:15:06 -05:00
2010-07-26 13:16:51 -05:00
2013-05-30 12:57:25 -05:00
2013-06-17 17:43:04 -05:00
2011-01-11 20:28:17 -06:00
2012-11-08 15:34:59 -06:00
2013-05-07 18:45:36 -05:00
2013-04-21 14:53:46 -05:00
2013-06-27 14:27:18 -05:00
2013-06-27 14:26:21 -05:00
2013-06-28 13:13:59 -05:00
2013-06-26 12:29:27 -05:00
2013-06-27 13:34:12 -05:00
2013-06-27 13:34:12 -05:00
2013-04-21 15:03:33 -05:00
2012-12-17 16:29:00 -06:00
2013-07-09 13:21:15 -05:00
2013-04-21 15:03:33 -05:00
2012-05-14 16:20:54 -05:00
2013-05-07 19:00:10 -05:00
2011-08-12 16:21:35 -05:00
2013-07-09 15:53:57 -05:00
2011-08-12 16:21:35 -05:00
2013-06-27 13:27:37 -05:00
2010-12-16 16:05:51 -06:00
2013-07-10 10:21:51 -05:00
2011-08-12 16:21:35 -05:00
2013-07-09 15:36:21 -05:00
2010-06-24 11:35:17 +10:00
2013-05-07 18:45:36 -05:00
2013-06-27 13:32:08 -05:00
2013-04-16 13:18:33 -05:00
2013-06-27 14:26:21 -05:00
2010-05-24 10:33:39 -05:00
2013-06-27 13:32:08 -05:00
2013-06-27 13:34:12 -05:00
2013-05-07 18:45:36 -05:00
2013-05-07 18:45:36 -05:00
2013-06-28 17:39:22 -05:00
2013-06-19 14:54:17 -05:00
2011-02-01 11:42:43 +01:00
2010-01-15 15:34:22 -06:00
2013-01-17 17:32:57 -06:00
2013-06-28 17:39:22 -05:00
2013-06-28 17:39:22 -05:00
2013-06-28 14:12:22 -05:00
2012-03-14 11:09:06 -05:00
2013-07-09 16:43:16 -05:00
2013-06-28 17:39:22 -05:00
2012-05-14 16:20:54 -05:00
2012-11-15 21:34:05 -06:00
2011-07-25 15:03:13 -05:00
2013-06-28 13:03:49 -05:00
2012-03-14 11:09:06 -05:00
2012-03-14 11:09:06 -05:00
2013-06-28 17:39:22 -05:00
2012-10-17 12:01:25 -05:00
2013-06-28 13:13:59 -05:00
2013-06-19 14:14:43 -05:00
2013-06-17 17:42:25 -05:00
2012-11-08 15:34:59 -06:00
2013-04-27 12:33:38 -05:00
2013-06-27 13:33:11 -05:00
2012-12-17 16:29:00 -06:00
2013-06-27 13:33:11 -05:00
2013-07-09 16:43:16 -05:00
2012-05-14 16:20:54 -05:00
2013-06-28 13:00:05 -05:00
2012-07-29 16:27:57 -05:00
2009-02-09 08:37:14 +01:00
2013-06-27 13:36:37 -05:00
2013-06-27 13:34:12 -05:00
2013-01-17 17:32:57 -06:00
2012-07-29 16:00:31 -05:00
2012-01-03 22:55:00 -05:00
2012-03-15 13:40:16 -05:00
2013-06-19 14:14:43 -05:00
2012-11-29 14:21:46 -06:00
2011-08-12 16:21:35 -05:00
2013-05-07 18:45:36 -05:00