# HG changeset patch # User charles # Date 1148520417 0 # Node ID 2f69a6372caf01a99a79909d0c1f83549129ea6b # Parent f0d1a05787e4e195c434c99ba6b5d1208cc0e621 Fix SGID problem diff --git a/yaffs_fs.c b/yaffs_fs.c --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -31,7 +31,7 @@ */ const char *yaffs_fs_c_version = - "$Id: yaffs_fs.c,v 1.48 2006-05-21 09:39:12 charles Exp $"; + "$Id: yaffs_fs.c,v 1.49 2006-05-25 01:26:57 charles Exp $"; extern const char *yaffs_guts_c_version; #include @@ -910,6 +910,9 @@ static int yaffs_mknod(struct inode *dir int error = -ENOSPC; uid_t uid = current->fsuid; gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid; + + if((dir->i_mode & S_ISGID) && S_ISDIR(mode)) + mode |= S_ISGID; if (parent) { T(YAFFS_TRACE_OS,