Add Sergey's patch
[yaffs2.git] / yaffs_fs.c
index bcc148be595671a52a49cfa5685db679b78e6f89..08494c8fd9739c35da973eaf8fab88af7ef98d85 100644 (file)
@@ -31,7 +31,7 @@
  */
 
 const char *yaffs_fs_c_version =
-    "$Id: yaffs_fs.c,v 1.47 2006-05-17 09:36:06 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, struct dentry *dentry, int mode,
        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,
@@ -1547,6 +1550,8 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion,
                dev->nBytesPerChunk = mtd->oobblock;
                dev->nChunksPerBlock = mtd->erasesize / mtd->oobblock;
                nBlocks = mtd->size / mtd->erasesize;
+
+               dev->nCheckpointReservedBlocks = 10;
                dev->startBlock = 0;
                dev->endBlock = nBlocks - 1;
        } else {