]> git.neil.brown.name Git - history.git/commitdiff
Import 2.1.55 2.1.55
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:52 +0000 (15:13 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:52 +0000 (15:13 -0500)
Makefile
arch/i386/kernel/entry.S
drivers/char/Config.in
drivers/scsi/Config.in
fs/affs/inode.c
fs/ext2/ialloc.c
fs/inode.c
fs/minix/bitmap.c
fs/sysv/ialloc.c

index 13a1b0b50b9a8477e069ebf9e6a1bf0cd3e10891..24d65bc41d2f1c5782350467d3c6650ab374e5d2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 2
 PATCHLEVEL = 1
-SUBLEVEL = 54
+SUBLEVEL = 55
 
 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/)
 
index 32256f7bfec9b0d4f745a90ac42160c116cae03c..21bf047099e635da262db741b304968adbd762d2 100644 (file)
@@ -373,7 +373,7 @@ ENTRY(sys_call_table)
        .long SYMBOL_NAME(sys_mknod)
        .long SYMBOL_NAME(sys_chmod)            /* 15 */
        .long SYMBOL_NAME(sys_chown)
-       .long 0                                                 /* old break syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old break syscall holder */
        .long SYMBOL_NAME(sys_stat)
        .long SYMBOL_NAME(sys_lseek)
        .long SYMBOL_NAME(sys_getpid)           /* 20 */
@@ -387,11 +387,11 @@ ENTRY(sys_call_table)
        .long SYMBOL_NAME(sys_fstat)
        .long SYMBOL_NAME(sys_pause)
        .long SYMBOL_NAME(sys_utime)            /* 30 */
-       .long 0                                                 /* old stty syscall holder */
-       .long 0                                                 /* old gtty syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old stty syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old gtty syscall holder */
        .long SYMBOL_NAME(sys_access)
        .long SYMBOL_NAME(sys_nice)
-       .long 0                                 /* 35 */        /* old ftime syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)       /* 35 */                /* old ftime syscall holder */
        .long SYMBOL_NAME(sys_sync)
        .long SYMBOL_NAME(sys_kill)
        .long SYMBOL_NAME(sys_rename)
@@ -400,7 +400,7 @@ ENTRY(sys_call_table)
        .long SYMBOL_NAME(sys_dup)
        .long SYMBOL_NAME(sys_pipe)
        .long SYMBOL_NAME(sys_times)
-       .long 0                                                 /* old prof syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old prof syscall holder */
        .long SYMBOL_NAME(sys_brk)              /* 45 */
        .long SYMBOL_NAME(sys_setgid)
        .long SYMBOL_NAME(sys_getgid)
@@ -408,13 +408,13 @@ ENTRY(sys_call_table)
        .long SYMBOL_NAME(sys_geteuid)
        .long SYMBOL_NAME(sys_getegid)          /* 50 */
        .long SYMBOL_NAME(sys_acct)
-       .long 0                                                 /* old phys syscall holder */
-       .long 0                                                 /* old lock syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old phys syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old lock syscall holder */
        .long SYMBOL_NAME(sys_ioctl)
        .long SYMBOL_NAME(sys_fcntl)            /* 55 */
-       .long 0                                                 /* old mpx syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old mpx syscall holder */
        .long SYMBOL_NAME(sys_setpgid)
-       .long 0                                                 /* old ulimit syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old ulimit syscall holder */
        .long SYMBOL_NAME(sys_olduname)
        .long SYMBOL_NAME(sys_umask)            /* 60 */
        .long SYMBOL_NAME(sys_chroot)
@@ -454,7 +454,7 @@ ENTRY(sys_call_table)
        .long SYMBOL_NAME(sys_fchown)           /* 95 */
        .long SYMBOL_NAME(sys_getpriority)
        .long SYMBOL_NAME(sys_setpriority)
-       .long 0                                                 /* old profil syscall holder */
+       .long SYMBOL_NAME(sys_ni_syscall)                               /* old profil syscall holder */
        .long SYMBOL_NAME(sys_statfs)
        .long SYMBOL_NAME(sys_fstatfs)          /* 100 */
        .long SYMBOL_NAME(sys_ioperm)
index 7cb2041a90f26323133465036d67998f8687e793..eee723670d239712c520b375e5f56e364af7f5eb 100644 (file)
@@ -104,7 +104,7 @@ if [ "$CONFIG_WATCHDOG" != "n" ]; then
   tristate '   Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
 fi
 bool 'Enhanced Real Time Clock Support' CONFIG_RTC
-if [ "$CONFIG_PPC" == "y" ]; then
+if [ "$CONFIG_PPC" = "y" ]; then
   bool 'Tadpole ANA H8 Support'  CONFIG_H8
 fi
 tristate '/dev/nvram support' CONFIG_NVRAM
index 45fa070a9ba74fc76f040a0a80bccfc9e8598484..a137680cbdbdd6bd689785633e87a36b34b87113 100644 (file)
@@ -108,7 +108,7 @@ dep_tristate 'UltraStor 14F/34F support' CONFIG_SCSI_U14_34F $CONFIG_SCSI
   fi
 dep_tristate 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR $CONFIG_SCSI
 #dep_tristate 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG $CONFIG_SCSI
-if [ "$CONFIG_PPC" == "y" ]; then
+if [ "$CONFIG_PPC" = "y" ]; then
   dep_tristate 'MESH (Power Mac internal SCSI) support' CONFIG_SCSI_MESH $CONFIG_SCSI
   if [ "$CONFIG_SCSI_MESH" != "n" ]; then
     int '  maximum synchronous transfer rate (MB/s) (0 = async)' CONFIG_SCSI_MESH_SYNC_RATE 5
index c0515764c32cf03b9f52307f3968eba69dbcd2f7..1999902eb2042a3a00c6b833aafd7a09544233d9 100644 (file)
@@ -908,7 +908,6 @@ affs_new_inode(const struct inode *dir)
        inode->i_dev     = sb->s_dev;
        inode->i_uid     = current->fsuid;
        inode->i_gid     = current->fsgid;
-       mark_inode_dirty(inode);
        inode->i_ino     = block;
        inode->i_op      = NULL;
        inode->i_blocks  = 0;
@@ -928,6 +927,7 @@ affs_new_inode(const struct inode *dir)
        inode->u.affs_i.i_lastblock    = -1;
 
        insert_inode_hash(inode);
+       mark_inode_dirty(inode);
 
        return inode;
 }
index 833f69ff9a644cc18b241c768ff555aa82a59858..19b38753bae4d65ac08b9008354708e382c129d9 100644 (file)
@@ -448,7 +448,7 @@ repeat:
                        mode |= S_ISGID;
        } else
                inode->i_gid = current->fsgid;
-       mark_inode_dirty(inode);
+
        inode->i_ino = j;
        inode->i_blksize = PAGE_SIZE;   /* This is the optimal IO size (for stat), not the fs block size */
        inode->i_blocks = 0;
@@ -468,6 +468,7 @@ repeat:
        if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL)
                inode->i_flags |= MS_SYNCHRONOUS;
        insert_inode_hash(inode);
+       mark_inode_dirty(inode);
        inc_inode_version (inode, gdp, mode);
 
        unlock_super (sb);
index cac5ffd4c869f29be2dbf3e917165b7e542cc802..7c98812222c30bc315f720777fec57c8a7b3e7a6 100644 (file)
@@ -62,7 +62,16 @@ struct {
 int max_inodes = NR_INODE;
 
 /*
- * Put the inode on the super block's dirty list
+ * Put the inode on the super block's dirty list.
+ *
+ * CAREFUL! We mark it dirty unconditionally, but
+ * move it onto the dirty list only if it is hashed.
+ * If it was not hashed, it will never be added to
+ * the dirty list even if it is later hashed, as it
+ * will have been marked dirty already.
+ *
+ * In short, make sure you hash any inodes _before_
+ * you start marking them dirty..
  */
 void __mark_inode_dirty(struct inode *inode)
 {
index 9e27ee1188786a8da64e4ee1b84952b8f0a01950..69b8e4e4cc33eeff3d35825cebcf30142dc1030a 100644 (file)
@@ -255,12 +255,12 @@ struct inode * minix_new_inode(const struct inode * dir)
        inode->i_dev = sb->s_dev;
        inode->i_uid = current->fsuid;
        inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
-       mark_inode_dirty(inode);
        inode->i_ino = j;
        inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
        inode->i_op = NULL;
        inode->i_blocks = inode->i_blksize = 0;
        insert_inode_hash(inode);
+       mark_inode_dirty(inode);
        return inode;
 }
 
index fa0b3cf952d6a7fd51c8d9f4d6e43fc356089529..120c71ad1b28712d1cc7e92b1dccf0295acd0027 100644 (file)
@@ -154,12 +154,12 @@ struct inode * sysv_new_inode(const struct inode * dir)
        inode->i_dev = sb->s_dev;
        inode->i_uid = current->fsuid;
        inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
-       mark_inode_dirty(inode);
        inode->i_ino = ino;
        inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
        inode->i_op = NULL;
        inode->i_blocks = inode->i_blksize = 0;
        insert_inode_hash(inode);
+       mark_inode_dirty(inode);
        /* Change directory entry: */
        inode->i_mode = 0;              /* for sysv_write_inode() */
        inode->i_size = 0;              /* ditto */