Commit b8605517 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.55

parent 47844733
VERSION = 2 VERSION = 2
PATCHLEVEL = 1 PATCHLEVEL = 1
SUBLEVEL = 54 SUBLEVEL = 55
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/)
......
...@@ -373,7 +373,7 @@ ENTRY(sys_call_table) ...@@ -373,7 +373,7 @@ ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_mknod) .long SYMBOL_NAME(sys_mknod)
.long SYMBOL_NAME(sys_chmod) /* 15 */ .long SYMBOL_NAME(sys_chmod) /* 15 */
.long SYMBOL_NAME(sys_chown) .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_stat)
.long SYMBOL_NAME(sys_lseek) .long SYMBOL_NAME(sys_lseek)
.long SYMBOL_NAME(sys_getpid) /* 20 */ .long SYMBOL_NAME(sys_getpid) /* 20 */
...@@ -387,11 +387,11 @@ ENTRY(sys_call_table) ...@@ -387,11 +387,11 @@ ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_fstat) .long SYMBOL_NAME(sys_fstat)
.long SYMBOL_NAME(sys_pause) .long SYMBOL_NAME(sys_pause)
.long SYMBOL_NAME(sys_utime) /* 30 */ .long SYMBOL_NAME(sys_utime) /* 30 */
.long 0 /* old stty syscall holder */ .long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */
.long 0 /* old gtty syscall holder */ .long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */
.long SYMBOL_NAME(sys_access) .long SYMBOL_NAME(sys_access)
.long SYMBOL_NAME(sys_nice) .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_sync)
.long SYMBOL_NAME(sys_kill) .long SYMBOL_NAME(sys_kill)
.long SYMBOL_NAME(sys_rename) .long SYMBOL_NAME(sys_rename)
...@@ -400,7 +400,7 @@ ENTRY(sys_call_table) ...@@ -400,7 +400,7 @@ ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_dup) .long SYMBOL_NAME(sys_dup)
.long SYMBOL_NAME(sys_pipe) .long SYMBOL_NAME(sys_pipe)
.long SYMBOL_NAME(sys_times) .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_brk) /* 45 */
.long SYMBOL_NAME(sys_setgid) .long SYMBOL_NAME(sys_setgid)
.long SYMBOL_NAME(sys_getgid) .long SYMBOL_NAME(sys_getgid)
...@@ -408,13 +408,13 @@ ENTRY(sys_call_table) ...@@ -408,13 +408,13 @@ ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_geteuid) .long SYMBOL_NAME(sys_geteuid)
.long SYMBOL_NAME(sys_getegid) /* 50 */ .long SYMBOL_NAME(sys_getegid) /* 50 */
.long SYMBOL_NAME(sys_acct) .long SYMBOL_NAME(sys_acct)
.long 0 /* old phys syscall holder */ .long SYMBOL_NAME(sys_ni_syscall) /* old phys syscall holder */
.long 0 /* old lock syscall holder */ .long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */
.long SYMBOL_NAME(sys_ioctl) .long SYMBOL_NAME(sys_ioctl)
.long SYMBOL_NAME(sys_fcntl) /* 55 */ .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 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_olduname)
.long SYMBOL_NAME(sys_umask) /* 60 */ .long SYMBOL_NAME(sys_umask) /* 60 */
.long SYMBOL_NAME(sys_chroot) .long SYMBOL_NAME(sys_chroot)
...@@ -454,7 +454,7 @@ ENTRY(sys_call_table) ...@@ -454,7 +454,7 @@ ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_fchown) /* 95 */ .long SYMBOL_NAME(sys_fchown) /* 95 */
.long SYMBOL_NAME(sys_getpriority) .long SYMBOL_NAME(sys_getpriority)
.long SYMBOL_NAME(sys_setpriority) .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_statfs)
.long SYMBOL_NAME(sys_fstatfs) /* 100 */ .long SYMBOL_NAME(sys_fstatfs) /* 100 */
.long SYMBOL_NAME(sys_ioperm) .long SYMBOL_NAME(sys_ioperm)
......
...@@ -104,7 +104,7 @@ if [ "$CONFIG_WATCHDOG" != "n" ]; then ...@@ -104,7 +104,7 @@ if [ "$CONFIG_WATCHDOG" != "n" ]; then
tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
fi fi
bool 'Enhanced Real Time Clock Support' CONFIG_RTC 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 bool 'Tadpole ANA H8 Support' CONFIG_H8
fi fi
tristate '/dev/nvram support' CONFIG_NVRAM tristate '/dev/nvram support' CONFIG_NVRAM
......
...@@ -108,7 +108,7 @@ dep_tristate 'UltraStor 14F/34F support' CONFIG_SCSI_U14_34F $CONFIG_SCSI ...@@ -108,7 +108,7 @@ dep_tristate 'UltraStor 14F/34F support' CONFIG_SCSI_U14_34F $CONFIG_SCSI
fi fi
dep_tristate 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR $CONFIG_SCSI dep_tristate 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR $CONFIG_SCSI
#dep_tristate 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG $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 dep_tristate 'MESH (Power Mac internal SCSI) support' CONFIG_SCSI_MESH $CONFIG_SCSI
if [ "$CONFIG_SCSI_MESH" != "n" ]; then if [ "$CONFIG_SCSI_MESH" != "n" ]; then
int ' maximum synchronous transfer rate (MB/s) (0 = async)' CONFIG_SCSI_MESH_SYNC_RATE 5 int ' maximum synchronous transfer rate (MB/s) (0 = async)' CONFIG_SCSI_MESH_SYNC_RATE 5
......
...@@ -908,7 +908,6 @@ affs_new_inode(const struct inode *dir) ...@@ -908,7 +908,6 @@ affs_new_inode(const struct inode *dir)
inode->i_dev = sb->s_dev; inode->i_dev = sb->s_dev;
inode->i_uid = current->fsuid; inode->i_uid = current->fsuid;
inode->i_gid = current->fsgid; inode->i_gid = current->fsgid;
mark_inode_dirty(inode);
inode->i_ino = block; inode->i_ino = block;
inode->i_op = NULL; inode->i_op = NULL;
inode->i_blocks = 0; inode->i_blocks = 0;
...@@ -928,6 +927,7 @@ affs_new_inode(const struct inode *dir) ...@@ -928,6 +927,7 @@ affs_new_inode(const struct inode *dir)
inode->u.affs_i.i_lastblock = -1; inode->u.affs_i.i_lastblock = -1;
insert_inode_hash(inode); insert_inode_hash(inode);
mark_inode_dirty(inode);
return inode; return inode;
} }
......
...@@ -448,7 +448,7 @@ struct inode * ext2_new_inode (const struct inode * dir, int mode, int * err) ...@@ -448,7 +448,7 @@ struct inode * ext2_new_inode (const struct inode * dir, int mode, int * err)
mode |= S_ISGID; mode |= S_ISGID;
} else } else
inode->i_gid = current->fsgid; inode->i_gid = current->fsgid;
mark_inode_dirty(inode);
inode->i_ino = j; inode->i_ino = j;
inode->i_blksize = PAGE_SIZE; /* This is the optimal IO size (for stat), not the fs block size */ inode->i_blksize = PAGE_SIZE; /* This is the optimal IO size (for stat), not the fs block size */
inode->i_blocks = 0; inode->i_blocks = 0;
...@@ -468,6 +468,7 @@ struct inode * ext2_new_inode (const struct inode * dir, int mode, int * err) ...@@ -468,6 +468,7 @@ struct inode * ext2_new_inode (const struct inode * dir, int mode, int * err)
if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL) if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL)
inode->i_flags |= MS_SYNCHRONOUS; inode->i_flags |= MS_SYNCHRONOUS;
insert_inode_hash(inode); insert_inode_hash(inode);
mark_inode_dirty(inode);
inc_inode_version (inode, gdp, mode); inc_inode_version (inode, gdp, mode);
unlock_super (sb); unlock_super (sb);
......
...@@ -62,7 +62,16 @@ struct { ...@@ -62,7 +62,16 @@ struct {
int max_inodes = NR_INODE; 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) void __mark_inode_dirty(struct inode *inode)
{ {
......
...@@ -255,12 +255,12 @@ struct inode * minix_new_inode(const struct inode * dir) ...@@ -255,12 +255,12 @@ struct inode * minix_new_inode(const struct inode * dir)
inode->i_dev = sb->s_dev; inode->i_dev = sb->s_dev;
inode->i_uid = current->fsuid; inode->i_uid = current->fsuid;
inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid; inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
mark_inode_dirty(inode);
inode->i_ino = j; inode->i_ino = j;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_op = NULL; inode->i_op = NULL;
inode->i_blocks = inode->i_blksize = 0; inode->i_blocks = inode->i_blksize = 0;
insert_inode_hash(inode); insert_inode_hash(inode);
mark_inode_dirty(inode);
return inode; return inode;
} }
......
...@@ -154,12 +154,12 @@ struct inode * sysv_new_inode(const struct inode * dir) ...@@ -154,12 +154,12 @@ struct inode * sysv_new_inode(const struct inode * dir)
inode->i_dev = sb->s_dev; inode->i_dev = sb->s_dev;
inode->i_uid = current->fsuid; inode->i_uid = current->fsuid;
inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid; inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
mark_inode_dirty(inode);
inode->i_ino = ino; inode->i_ino = ino;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
inode->i_op = NULL; inode->i_op = NULL;
inode->i_blocks = inode->i_blksize = 0; inode->i_blocks = inode->i_blksize = 0;
insert_inode_hash(inode); insert_inode_hash(inode);
mark_inode_dirty(inode);
/* Change directory entry: */ /* Change directory entry: */
inode->i_mode = 0; /* for sysv_write_inode() */ inode->i_mode = 0; /* for sysv_write_inode() */
inode->i_size = 0; /* ditto */ inode->i_size = 0; /* ditto */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment