changeset 133:2f69a6372caf

Fix SGID problem
author charles <charles>
date Thu, 25 May 2006 01:26:57 +0000
parents f0d1a05787e4
children 8a3c44a06d97
files yaffs_fs.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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 <linux/config.h>
@@ -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,