From 3044ea596c51b183d3449fcca70c3c903d6b502f Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 10 Aug 2015 18:18:35 +0200 Subject: fuse: add "resolve-gids" mount option to overcome 32-groups limit Add a --resolve-gids commandline option to the glusterfs binary. This option gets set when executing "mount -t glusterfs -o resolve-gids ...". This option is most useful in combination with the "acl" mount option. POSIX ACL permission checking is done on the FUSE-client side to improve performance (in addition to the checking on the bricks). The fuse-bridge reads /proc/$PID/status by default, and this file contains maximum 32 groups. Any local (client-side) permission checking that requires more than the first 32 groups will fail. By enabling the "resolve-gids" option, the fuse-bridge will call getgrouplist() to retrieve all the groups from the user accessing the mountpoint. This is comparable to how "nfs.server-aux-gids" works. Note that when a user belongs to more than ~93 groups, the volume option server.manage-gids needs to be enabled too. Without this option, the RPC-layer will need to reduce the number of groups to make them fit in the RPC-header. Cherry picked from commit 64a5bf3749c67fcc00773a2716d0c7b61b0b4417: > Change-Id: I7ede90d0e41bcf55755cced5747fa0fb1699edb2 > BUG: 1246275 > Signed-off-by: Niels de Vos > Reviewed-on: http://review.gluster.org/11732 > Tested-by: NetBSD Build System > Reviewed-by: Ravishankar N > Tested-by: Gluster Build System > Reviewed-by: jiffin tony Thottan > Reviewed-by: Kaleb KEITHLEY Change-Id: I7ede90d0e41bcf55755cced5747fa0fb1699edb2 BUG: 1252072 Tested-by: Patrick Glomski Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/11876 Tested-by: Gluster Build System Reviewed-by: Anoop C S Reviewed-by: Raghavendra Bhat --- libglusterfs/src/glusterfs.h | 1 + 1 file changed, 1 insertion(+) (limited to 'libglusterfs') diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 286a6325341..9d613e4c259 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -418,6 +418,7 @@ struct _cmd_args { int background_qlen; int congestion_threshold; char *fuse_mountopts; + int resolve_gids; /* key args */ char *mount_point; -- cgit