## Automatically generated incremental diff ## From: linux-2.6.1-rc3 ## To: linux-2.6.1 ## Robot: $Id: make-incremental-diff,v 1.12 2004/01/06 07:19:36 hpa Exp $ diff -urN linux-2.6.1-rc3/Documentation/Changes linux-2.6.1/Documentation/Changes --- linux-2.6.1-rc3/Documentation/Changes 2003-12-17 18:59:38.000000000 -0800 +++ linux-2.6.1/Documentation/Changes 2004-01-08 23:41:40.000000000 -0800 @@ -56,7 +56,7 @@ o e2fsprogs 1.29 # tune2fs o jfsutils 1.1.3 # fsck.jfs -V o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs -o xfsprogs 2.1.0 # xfs_db -V +o xfsprogs 2.6.0 # xfs_db -V o pcmcia-cs 3.1.21 # cardmgr -V o quota-tools 3.09 # quota -V o PPP 2.4.0 # pppd --version @@ -183,9 +183,8 @@ The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the xfs_repair utilities, among others, for the XFS filesystem. It is architecture independent and any version from 2.0.0 onward should -work correctly with this version of the XFS kernel code. For the new -(v2) log format that has better support for stripe-size aligning on -LVM and MD devices at least xfsprogs 2.1.0 is needed. +work correctly with this version of the XFS kernel code (2.6.0 or +later is recommended, due to some significant improvements). Pcmcia-cs @@ -359,7 +358,7 @@ Xfsprogs -------- -o +o Pcmcia-cs --------- diff -urN linux-2.6.1-rc3/Documentation/filesystems/xfs.txt linux-2.6.1/Documentation/filesystems/xfs.txt --- linux-2.6.1-rc3/Documentation/filesystems/xfs.txt 2003-12-17 18:59:19.000000000 -0800 +++ linux-2.6.1/Documentation/filesystems/xfs.txt 2004-01-08 23:41:40.000000000 -0800 @@ -29,10 +29,11 @@ The preferred buffered I/O size can also be altered on an individual file basis using the ioctl(2) system call. - ikeep + ikeep/noikeep When inode clusters are emptied of inodes, keep them around - on the disk, this is the old XFS behavior. Default is now to - return the inode cluster to the free space pool. + on the disk (ikeep) - this is the traditional XFS behaviour + and is still the default for now. Using the noikeep option, + inode clusters are returned to the free space pool. logbufs=value Set the number of in-memory log buffers. Valid numbers range @@ -75,6 +76,10 @@ Filesystems mounted "norecovery" must be mounted read-only or the mount will fail. + nouuid + Don't check for double mounted file systems using the file system uuid. + This is useful to mount LVM snapshot volumes. + osyncisosync Make O_SYNC writes implement true O_SYNC. WITHOUT this option, Linux XFS behaves as if an "osyncisdsync" option is used, @@ -108,10 +113,6 @@ The "swidth" option is required if the "sunit" option has been specified, and must be a multiple of the "sunit" value. - nouuid - Don't check for double mounted file systems using the file system uuid. - This is useful to mount LVM snapshot volumes. - sysctls ======= @@ -139,14 +140,14 @@ Causes certain error conditions to call BUG(). Value is a bitmask; AND together the tags which represent errors which should cause panics: - XFS_NO_PTAG 0LL - XFS_PTAG_IFLUSH 0x0000000000000001LL - XFS_PTAG_LOGRES 0x0000000000000002LL - XFS_PTAG_AILDELETE 0x0000000000000004LL - XFS_PTAG_ERROR_REPORT 0x0000000000000008LL - XFS_PTAG_SHUTDOWN_CORRUPT 0x0000000000000010LL - XFS_PTAG_SHUTDOWN_IOERROR 0x0000000000000020LL - XFS_PTAG_SHUTDOWN_LOGERROR 0x0000000000000040LL + XFS_NO_PTAG 0 + XFS_PTAG_IFLUSH 0x00000001 + XFS_PTAG_LOGRES 0x00000002 + XFS_PTAG_AILDELETE 0x00000004 + XFS_PTAG_ERROR_REPORT 0x00000008 + XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010 + XFS_PTAG_SHUTDOWN_IOERROR 0x00000020 + XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040 This option is intended for debugging only. @@ -165,6 +166,21 @@ Controls whether unprivileged users can use chown to "give away" a file to another user. + fs.xfs.inherit_sync (Min: 0 Default: 1 Max 1) + Setting this to "1" will cause the "sync" flag set + by the chattr(1) command on a directory to be + inherited by files in that directory. + + fs.xfs.inherit_nodump (Min: 0 Default: 1 Max 1) + Setting this to "1" will cause the "nodump" flag set + by the chattr(1) command on a directory to be + inherited by files in that directory. + + fs.xfs.inherit_noatime (Min: 0 Default: 1 Max 1) + Setting this to "1" will cause the "noatime" flag set + by the chattr(1) command on a directory to be + inherited by files in that directory. + vm.pagebuf.stats_clear (Min: 0 Default: 0 Max: 1) Setting this to "1" clears accumulated pagebuf statistics in /proc/fs/pagebuf/stat. It then immediately reset to "0". diff -urN linux-2.6.1-rc3/Makefile linux-2.6.1/Makefile --- linux-2.6.1-rc3/Makefile 2004-01-08 23:41:28.000000000 -0800 +++ linux-2.6.1/Makefile 2004-01-08 23:41:40.000000000 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 1 -EXTRAVERSION =-rc3 +EXTRAVERSION = # *DOCUMENTATION* # To see a list of typical targets execute "make help" diff -urN linux-2.6.1-rc3/drivers/char/agp/ati-agp.c linux-2.6.1/drivers/char/agp/ati-agp.c --- linux-2.6.1-rc3/drivers/char/agp/ati-agp.c 2004-01-08 23:41:29.000000000 -0800 +++ linux-2.6.1/drivers/char/agp/ati-agp.c 2004-01-08 23:41:43.000000000 -0800 @@ -151,7 +151,7 @@ u32 temp; struct aper_size_info_lvl2 *values; - if (is_r200) + if (is_r200()) pci_read_config_dword(agp_bridge->dev, ATI_RS100_APSIZE, &temp); else pci_read_config_dword(agp_bridge->dev, ATI_RS300_APSIZE, &temp); @@ -184,7 +184,7 @@ previous_size = A_SIZE_LVL2(agp_bridge->previous_size); /* Write back the previous size and disable gart translation */ - if (is_r200) { + if (is_r200()) { pci_read_config_dword(agp_bridge->dev, ATI_RS100_APSIZE, &temp); temp = ((temp & ~(0x0000000f)) | previous_size->size_value); pci_write_config_dword(agp_bridge->dev, ATI_RS100_APSIZE, temp); @@ -206,7 +206,7 @@ temp = (temp & 0xfffff000); ati_generic_private.registers = (volatile u8 *) ioremap(temp, 4096); - if (is_r200) + if (is_r200()) pci_write_config_dword(agp_bridge->dev, ATI_RS100_IG_AGPMODE, 0x20000); else pci_write_config_dword(agp_bridge->dev, ATI_RS300_IG_AGPMODE, 0x20000); @@ -333,7 +333,7 @@ /* Write out the size register */ current_size = A_SIZE_LVL2(agp_bridge->current_size); - if (is_r200) { + if (is_r200()) { pci_read_config_dword(agp_bridge->dev, ATI_RS100_APSIZE, &temp); temp = (((temp & ~(0x0000000e)) | current_size->size_value) | 0x00000001); diff -urN linux-2.6.1-rc3/fs/xfs/pagebuf/page_buf.c linux-2.6.1/fs/xfs/pagebuf/page_buf.c --- linux-2.6.1-rc3/fs/xfs/pagebuf/page_buf.c 2003-12-17 18:58:05.000000000 -0800 +++ linux-2.6.1/fs/xfs/pagebuf/page_buf.c 2004-01-08 23:41:45.000000000 -0800 @@ -1395,7 +1395,6 @@ break; offset = 0; - sector += nbytes >> BBSHIFT; size -= nbytes; total_nr_pages--; @@ -1403,15 +1402,11 @@ submit_io: if (likely(bio->bi_size)) { - if (pb->pb_flags & PBF_READ) { - submit_bio(READ, bio); - } else { - submit_bio(WRITE, bio); - } - + submit_bio((pb->pb_flags & PBF_READ) ? READ : WRITE, bio); if (size) goto next_chunk; } else { + bio_put(bio); pagebuf_ioerror(pb, EIO); } diff -urN linux-2.6.1-rc3/fs/xfs/xfs_vfsops.c linux-2.6.1/fs/xfs/xfs_vfsops.c --- linux-2.6.1-rc3/fs/xfs/xfs_vfsops.c 2003-12-17 18:58:18.000000000 -0800 +++ linux-2.6.1/fs/xfs/xfs_vfsops.c 2004-01-08 23:41:45.000000000 -0800 @@ -1598,8 +1598,9 @@ #define MNTOPT_NORECOVERY "norecovery" /* don't run XFS recovery */ #define MNTOPT_NOLOGFLUSH "nologflush" /* don't hard flush on log writes */ #define MNTOPT_OSYNCISOSYNC "osyncisosync" /* o_sync is REALLY o_sync */ -#define MNTOPT_64BITINODE "inode64" /* inodes can be allocated anywhere */ -#define MNTOPT_IKEEP "ikeep" /* free empty inode clusters */ +#define MNTOPT_64BITINODE "inode64" /* inodes can be allocated anywhere */ +#define MNTOPT_IKEEP "ikeep" /* do not free empty inode clusters */ +#define MNTOPT_NOIKEEP "noikeep" /* free empty inode clusters */ int @@ -1614,7 +1615,9 @@ int dsunit, dswidth, vol_dsunit, vol_dswidth; int iosize; +#if 0 /* XXX: off by default, until some remaining issues ironed out */ args->flags |= XFSMNT_IDELETE; /* default to on */ +#endif if (!options) return 0; @@ -1722,6 +1725,8 @@ args->flags |= XFSMNT_NOLOGFLUSH; } else if (!strcmp(this_char, MNTOPT_IKEEP)) { args->flags &= ~XFSMNT_IDELETE; + } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { + args->flags |= XFSMNT_IDELETE; } else if (!strcmp(this_char, "osyncisdsync")) { /* no-op, this is now the default */ printk("XFS: osyncisdsync is now the default, option is deprecated.\n"); diff -urN linux-2.6.1-rc3/kernel/fork.c linux-2.6.1/kernel/fork.c --- linux-2.6.1-rc3/kernel/fork.c 2004-01-08 23:41:34.000000000 -0800 +++ linux-2.6.1/kernel/fork.c 2004-01-08 23:41:47.000000000 -0800 @@ -918,7 +918,14 @@ p->thread_info->preempt_count = 1; #endif p->did_exec = 0; - p->state = TASK_UNINTERRUPTIBLE; + + /* + * We mark the process as running here, but have not actually + * inserted it onto the runqueue yet. This guarantees that + * nobody will actually run it, and a signal or other external + * event cannot wake it up and insert it on the runqueue either. + */ + p->state = TASK_RUNNING; copy_flags(clone_flags, p); if (clone_flags & CLONE_IDLETASK) @@ -1209,9 +1216,10 @@ set_tsk_thread_flag(p, TIF_SIGPENDING); } - p->state = TASK_STOPPED; if (!(clone_flags & CLONE_STOPPED)) wake_up_forked_process(p); /* do this last */ + else + p->state = TASK_STOPPED; ++total_forks; if (unlikely (trace)) { diff -urN linux-2.6.1-rc3/kernel/sched.c linux-2.6.1/kernel/sched.c --- linux-2.6.1-rc3/kernel/sched.c 2004-01-08 23:41:34.000000000 -0800 +++ linux-2.6.1/kernel/sched.c 2004-01-08 23:41:47.000000000 -0800 @@ -684,7 +684,8 @@ unsigned long flags; runqueue_t *rq = task_rq_lock(current, &flags); - p->state = TASK_RUNNING; + BUG_ON(p->state != TASK_RUNNING); + /* * We decrease the sleep average of forking parents * and children as well, to keep max-interactive tasks